var Part1Effect = function ( camera, renderer ) {

	Effect.call( this );

	var cameraPath, scene, particles, particle, material;

	//EVENTO DE INICIO DE LA ESCENA
	this.init = function () {

		//INDICA EL JUEGO DE CAMARAS
		cameraPath = { start: new THREE.Vector3( 0, 0, 200 ), end: new THREE.Vector3( 0, 500, 1000 ), change: new THREE.Vector3() };
		cameraPath.change.sub( cameraPath.end, cameraPath.start );

		//CREO UNA ESCENA
		scene = new THREE.Scene();

		particles = [];

		//INDICA EL CONTENIDO DE LA PARTICULA QUE SERA CREADA
		material = new THREE.ParticleBasicMaterial( { map: ImageUtils.loadTexture( 'files/textures/nova_particle.png' ), blending: THREE.AdditiveBlending } );

		for ( var i = 0; i < 1000; i ++ ) {

			//CREA UNA NUEVA PARTICULA
			particles[ i ] = particle = new THREE.Particle( material );
			//INDICA LA POSICION DE LA PARTICULA
			particle.position.x = Math.random() - 0.5;
			particle.position.y = Math.random() - 0.5;
			particle.position.z = Math.random() - 0.5;
			particle.position.normalize();
			//GENERA LA ESCALA DE LA POSCION DE LA PATICULA
			particle.position.multiplyScalar( Math.random() * 1000 + 100 );
			//INDICA LA ESCALA DE LA PARTICULA
			particle.scale.x = particle.scale.y = Math.random() * 0.5;
			//AÑADE PARTICLA AL ESCENARIO
			scene.addObject( particle );

		}

	};

	
	this.show = function () {
		//INDICA LA PERSPECTIVA INICIAL DE LA CAMARA
		
		camera.target.position.set( 0, 0, 0 );

	};

	//CADE VEZ QUE SE CAMBIA LA SECUENCIA
	this.update = function ( k ) {

		//COPIA POSICION ANTERIOR DE LA CAMARA
		camera.position.copy( cameraPath.change );
		//INDICA LA POSICION ANTERIOR DE LA ESCENA
		camera.position.multiplyScalar( k );
		//INDICA EL MOVIMIENTO DE CAMARA QUE DEBE DE REALIZAR EN LA POSICION DE LA ESCENA ACTUAL
		camera.position.addSelf( cameraPath.start );

		//ESCRIBIR CÓDIGO
		
		//RENDERIZA LA ESCENA
		renderer.render( scene, camera );

	};

};


Part1Effect.prototype = new Effect();
Part1Effect.prototype.constructor = Part1Effect;
